package org.jeecg.modules.zcgl.tencent.vo;

import lombok.Data;

import java.util.HashMap;
import java.util.Map;

@Data
public class WxTMessage{
    /**接收者openid**/
    private String touser;
    /**模板ID**/
    private String template_id;
    /**模板跳转链接**/
    private String url;
    /**模板数据**/
    private Map<String,Map<String,String>> data = new HashMap<String, Map<String,String>>();
    /**模板内容字体颜色，不填默认为黑色**/
    private String color;


    /**
     * 添加模板value值
     * @param key
     * @param value
     */
    public void addValue(String key, String value){
        this.addData(key, "value", value);
    }

    /**
     * 添加模板color值
     * @param key
     * @param color
     */
    public void addColor(String key, String color){
        this.addData(key, "color", color);
    }

//    /**
//     *  添加模板元素值:value,color
//     * @param key
//     * @param item
//     */
//    public void addParams(String key, Item item){
//        this.addParams(key, item.value, item.color);
//    }

    /**
     * 添加模板数据
     * @param key
     * @param hkey
     * @param hvalue
     */
    public void addData(String key, String hkey, String hvalue){
        Map<String,String> hmap = data.get(key);
        if(hmap == null){
            hmap = new HashMap<String,String>();
            data.put(key, hmap);
        }
        hmap.put(hkey, hvalue);
    }

    /**
     * 添加模板元素值:value,color
     * @param key
     * @param value
     * @param color
     */
    public void addParams(String key, String value, String color){
        Map<String,String> hmap = data.get(key);
        if(hmap == null){
            hmap = new HashMap<String,String>();
            data.put(key, hmap);
        }
        hmap.put("value", value);
        hmap.put("color", color);
    }

//    /**
//     * 转化为JSON字符串
//     * @return
//     */
//    public String toJSONString(){
//        JsonConfig config = new JsonConfig();
//        config.setJsonPropertyFilter(new PropertyFilter() {
//            @Override
//            public boolean apply(Object source, String name, Object value) {
//                return value == null || StringUtils.isBlank(value.toString());
//            }
//        });
//        return JSONObject.fromObject(this, config).toString();
//    }

    //---------------------------------------------------------------------------
    // getter/setter
    //---------------------------------------------------------------------------

//    public String getTouser() {
//        return touser;
//    }
//
//    public void setTouser(String touser) {
//        this.touser = touser;
//    }
//
//    public String getTemplate_id() {
//        return template_id;
//    }
//
//    public void setTemplate_id(String template_id) {
//        this.template_id = template_id;
//    }
//
//    public String getUrl() {
//        return url;
//    }
//
//    public void setUrl(String url) {
//        this.url = url;
//    }
//    public Map<String, Map<String, String>> getData() {
//        return data;
//    }
//
//    public void setData(Map<String, Map<String, String>> data) {
//        this.data = data;
//    }
//
//    public String getColor() {
//        return color;
//    }
//
//    public void setColor(String color) {
//        this.color = color;
//    }
//    public static class Params{
//        String value;
//        String color;
//
//        public Params(String value, String color) {
//            super();
//            this.value = value;
//            this.color = color;
//        }
//    }
}
